package com.rytx.system.service;

import java.util.List;
import com.rytx.system.domain.ArtAfterLog;

/**
 * 售后操作记录Service接口
 * 
 * @author rytx
 * @date 2024-08-29
 */
public interface IArtAfterLogService
{
    public static final String OPERATE_CREATE = "申请售后";
    public static final String OPERATE_SEND_OUT_GOODS = "用户发货";
    public static final String OPERATE_RECEIVE = "审核通过";
    public static final String OPERATE_REJECT = "驳回";
    public static final String OPERATE_FINISH = "完成";
    public static final String OPERATE_CLOSE = "完结";
    public static final String OPERATE_CANCEL = "取消";


    public static final Long SYSTEM_USER_TYPE_SYS = 1L;
    public static final Long SYSTEM_USER_TYPE_APP = 2L;

    //待审核
   public static final Long ORDER_STATUS_WAIT_CHECK = 1L;
    //售后中
    public static final Long ORDER_STATUS_IN_PROGRESS = 2L;
    //已完成
    public static final Long ORDER_STATUS_FINISH = 3L;
    //已关闭
    public static final Long ORDER_STATUS_CLOSE = 4L;
    //审核驳回
    public static final Long ORDER_STATUS_REJECT = 5L;
    //已取消
    public static final Long ORDER_STATUS_CANCEL = 6L;
    //退款中
    public static final Long ORDER_STATUS_REFUNDING = 7L;

    //解冻异常
    public static final Long ORDER_STATUS_SETTLEMENT_EXCEPTION = 20L;
    //扣款异常
    public static final Long ORDER_STATUS_DEBIT_EXCEPTION = 21L;
    //退款异常
    public static final Long ORDER_STATUS_REFUND_EXCEPTION = 22L;



    /**
     * 增加操作记录
     *
     * @param afterNo 订单号
     * @param operate 操作
     * @param userId 用户id
     * @param userType 用户类型
     * @param status 订单当前的状态
     * */
    public void createAfterLog(String afterNo,String operate,Long userId,Long userType,Long status);

    /**
     * 查询售后操作记录
     * 
     * @param id 售后操作记录主键
     * @return 售后操作记录
     */
    public ArtAfterLog selectArtAfterLogById(Long id);

    /**
     * 查询售后操作记录列表
     * 
     * @param artAfterLog 售后操作记录
     * @return 售后操作记录集合
     */
    public List<ArtAfterLog> selectArtAfterLogList(ArtAfterLog artAfterLog);

    /**
     * 新增售后操作记录
     * 
     * @param artAfterLog 售后操作记录
     * @return 结果
     */
    public int insertArtAfterLog(ArtAfterLog artAfterLog);

    /**
     * 修改售后操作记录
     * 
     * @param artAfterLog 售后操作记录
     * @return 结果
     */
    public int updateArtAfterLog(ArtAfterLog artAfterLog);

    /**
     * 批量删除售后操作记录
     * 
     * @param ids 需要删除的售后操作记录主键集合
     * @return 结果
     */
    public int deleteArtAfterLogByIds(Long[] ids);

    /**
     * 删除售后操作记录信息
     * 
     * @param id 售后操作记录主键
     * @return 结果
     */
    public int deleteArtAfterLogById(Long id);
}
